package it.sd.wdc.spider;

import it.sd.utility.XMLWrapper;
import it.sd.utility.XMLWrapperFactory;



public class WdcSpiderRequest {
	
	private int idrichiesta;

	private int idstatorichiesta;

	private String idService;
	
	private XMLWrapper input = null;
	private XMLWrapper output = null;

	/**
	 * richiesta da elaborare
	 */
	public static final int STATO_DAEVADERE = 0;
	
	/**
	 * richiesta elaborata (scaricato pdf)
	 */
	public static final int STATO_EVASA = 1;
	
	/**
	 * richiesta in errore navigazione
	 */
	public static final int STATO_ERRORE = 2;

	
	public WdcSpiderRequest() throws Exception {
		input = XMLWrapperFactory.build("input");
		output = XMLWrapperFactory.build("output");
	}

	public WdcSpiderRequest(int idrichiesta) {
		this.setIdrichiesta(idrichiesta);
	}

	public int getIdrichiesta() {
		return idrichiesta;
	}

	public void setIdrichiesta(int idrichiesta) {
		this.idrichiesta = idrichiesta;
	}

	public int getIdstatorichiesta() {
		return this.idstatorichiesta;
	}

	public void setIdstatorichiesta(int idstatorichiesta) {
		this.idstatorichiesta = idstatorichiesta;
	}

	public boolean isStato(int stato) {
		return this.idstatorichiesta == stato;
	}

	public String getIdService() {
		return idService;
	}

	public void setIdService(String idService) {
		this.idService = idService;
	}

	public void addParameter(String name, String value) {
		input.addValue(name, value);
	}
	
	public void addParameterQuery(String query) {
		if (query!=null) {
			String[] parametri = query.split("&");
			for (int i = 0; i < parametri.length; i++) {
				String[] coppia = parametri[i].split("=");
				input.addValue(coppia[0], coppia[1]);
			}
		}
	}

	/*

	public void setInput(XMLWrapper input) {
		this.input = input;
	}

*/
	
	public XMLWrapper getInput() {
		return input;
	}
	public XMLWrapper getOutput() {
		return output;
	}

	public void setOutput(XMLWrapper output) {
		this.output = output;
	}
	
	public String toString() {
		StringBuffer buffer = new StringBuffer();
		
		buffer.append("Servizio: ").append(idService).append(" richiesta: ").append(idrichiesta);
		buffer.append(input);
		
		return buffer.toString();
	}

	
}
